1. Field of the Invention
The present invention is related to scheduling storage device access, and, more particularly, to preventing a program that normally runs in the background from monopolizing disk access.
2. Description of the Related Art
Hardware resource management is an important issue in modern IT development. Commonly, an operating system is responsible for scheduling and allocating various hardware resources of a desktop computer or a server. For example, the operating system schedules use the CPU between various processes and threads running at a given time. Such scheduling can occur, for example, as a result of allocating each thread an equal time “slice” of the CPU or can have a more complex priority mechanism, when some processes/threads are allotted a higher percentage of the CPU time, while others receive a lower percentage.
Memory allocation is an area where the operating system determines the parameters of resource allocation. Thus, the operating system schedules use of memory and allocates memory, both physical and virtual, to various processes and threads, i.e., lightweight processes, running on the computer.
One of the problematic issues in the resource allocation relates to the hard disk drive, particularly for those applications that are intended to run in the background, such as backup systems, security systems, anti-virus systems, archive systems, compression systems, etc. A good example of such an application is an anti-virus application which sequentially checks all the files on the hard drive for viruses. Today, many desktop computers have hard drives with thousands of files. Many of these are relatively small in size, such as those found in the Temporary Internet Files folder of Internet Explorer, or similar types of files of other browsers, files such as GIFs, JPEGs, saved web pages, etc. Unless the user routinely purges such files, the number of files that the anti-virus application needs to go through and check for virus presence can easily reach 200,000-400,000 or even more.
However, due to the nature of the hardware, only one application at any given time can send a request for access to the disk drive. Therefore, even though the anti-virus application itself might consume a relatively small share of the CPU time and a small share of the available memory, the constant disk access requests issued by the anti-virus application mean that all the other processes on the computer experience a substantial slow down. Many users find it annoying and irritating and frequently stop the anti-virus application, preferring instead to work on their “useful” applications, whatever they might be, such as Microsoft Word, web browsing, etc.
Accordingly, there is a need in the art for a system and method that permit disk use-intensive applications in the background, without substantial slowing down other applications running on the computer.